package com.yshy.moviechoseseatingcommon.entity.vo.shows;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yshy.moviechoseseatingcommon.entity.dto.ComResponseDto;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author :
 * @desc :
 * @create: 下午6:19
 **/
@NoArgsConstructor
@Data
public class GetRealTimeSeatByShowIdVo extends ComResponseDto {
    private DataDTO data;

    @NoArgsConstructor
    @Data
    public static class DataDTO {
        /**
         * 影院名称
         */
        private String cinemaName;
        /**
         * 影院id
         */
        private Integer cinemaId;
        /**
         * 场次id
         */
        private Long id;
        /**
         * 影片id
         */
        private Integer filmId;
        /**
         * 影片名称
         */
        private String movieName;
        /**
         * 影片简要信息
         */
        private String movieInformation;
        /**
         * 影厅名称
         */
        private String hallName;
        /**
         * 影厅价格
         */
        private String price;
        /**
         * 快速选座价格
         */
        private String faseModePrice;
        /**
         * 场次类型
         */
        private String showVersionType;
                /**
         * 场次开始时间(yyyy-MM-dd HH:mm:ss)
         */
        @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
        private String showTime;
        /**
         * 场次结束时间(yyyy-MM-dd HH:mm:ss)
         */
        @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
        private String showEndTime;
        /**
         * 语言
         */
        private String language;
        /**
         * 播放类型
         */
        private String planType;
        /**
         * 座位，M排N列的二维数组
         */
        private List<List<SeatsDto>> seats;
        /**
         * 前端渲染场次边缘数据结构
         */
        private List<ShadowsDTO> shadows;
        /**
         * 区域价格
         */
        private List<AreaPricesDto> areaPrices;

        @NoArgsConstructor
        @Data
        public static class ShadowsDTO {
            /**
             * 是否头部
             */
            private Boolean head;
            /**
             * 是否需要画阴影
             */
            private Object duration;
            /**
             * 序号名称
             */
            private String name;
        }
        @NoArgsConstructor
        @Data
        public static class AreaPricesDto {
            /**
             * 区域id数组
             */
            private List<Integer> areaIds;
            /**
             * 区域价格
             */
            private BigDecimal price;
            /**
             * 区域名称
             */
            private String areaName;
        }
        @NoArgsConstructor
        @Data
        public static class SeatsDto {

            /**
             * 原始座位id
             */
            private String originSeatId;
            /**
             * 座位名称
             */
            private String name;
            /**
             * 0为非情侣座 1为情侣座左 2为情侣座右
             */
            private Integer love;
            /**
             * 可售不可售
             */
            private String status;
            /**
             * 是否中间线座位
             */
            private Boolean middle;
            /**
             * 特惠出票座位价格
             */
            private BigDecimal price;
            /**
             * 快速出票座位价格
             */
            private BigDecimal fastDrawModePrice;
            /**
             * 区域id(可空)
             */
            private String areaId;
        }
    }
}
